package entity

import "go.mongodb.org/mongo-driver/bson/primitive"

type StarshipEquipInfo struct {
	Id         primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	WID        uint               `bson:"wid" json:"wid"`
	UID        uint               `bson:"uid" json:"uid"`
	Energy     int                `bson:"energy" json:"energy"`
	TypeID     uint               `bson:"typeID" json:"typeID"`
	TypeName   string             `bson:"typeName" json:"typeName"`
	TypeImg    string             `bson:"typeImg" json:"typeImg"`
	TypeModule string             `bson:"typeModule" json:"typeModule"`
	TypeDesc   string             `bson:"typeDesc" json:"typeDesc"`
	Status     Status             `bson:"status" json:"status"`
	StarTime   int64              `bson:"starTime" json:"starTime"`
	EndTime    int64              `bson:"endTime" json:"endTime"`
}

type Status int

const (
	None Status = iota // 无
	Use                // 使用
	End                // 完成
)

type TsjLog struct {
	Id              primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	WID             uint               `bson:"wid" json:"wid"`
	UID             uint               `bson:"uid" json:"uid"`
	Energy          int                `bson:"energy" json:"energy"`             //能量
	ShipTypeID      uint               `bson:"shipTypeID" json:"shipTypeID"`     //星球类型
	ShipTypeName    string             `bson:"shipTypeName" json:"shipTypeName"` //星球名称
	ShipTypeImg     string             `bson:"shipTypeImg" json:"shipTypeImg"`   //星球图片
	ShipTypeModule  string             `bson:"shipTypeModule" json:"shipTypeModule"`
	Class           uint               `bson:"class" json:"class"`         //星金|星源 typeID
	ClassName       string             `bson:"className" json:"className"` //材料名称
	ClassImg        string             `bson:"classImg" json:"classImg"`   //材料图片
	ClassModule     string             `bson:"classModule" json:"classModule"`
	Spend           int64              `bson:"spend" json:"spend"`       //花费数量
	TypeID          uint               `bson:"typeID" json:"typeID"`     //星球类型
	TypeName        string             `bson:"typeName" json:"typeName"` //星球名称
	TypeImg         string             `bson:"typeImg" json:"typeImg"`   //星球图片
	TypeModule      string             `bson:"typeModule" json:"typeModule"`
	Price           int64              `bson:"price" json:"price"`                 // 价格
	SpendTypeID     uint               `bson:"spendTypeID" json:"spendTypeID"`     //星球类型
	SpendTypeName   string             `bson:"spendTypeName" json:"spendTypeName"` //星球名称
	SpendTypeImg    string             `bson:"spendTypeImg" json:"spendTypeImg"`   //星球图片
	SpendTypeModule string             `bson:"spendTypeModule" json:"spendTypeModule"`
	Status          TsjStatus          `bson:"status" json:"status"`
	StarTime        int64              `bson:"starTime" json:"starTime"` //探索开始时间
	EndTime         int64              `bson:"endTime" json:"endTime"`   //探索结束时间
}
type TsjStatus int

const (
	ExploreNone TsjStatus = iota // 无
	ExploreEnd                   // 探索完成
	Pay                          // 购买
	PayNot                       // 未购买
	Recovery                     // 回收
)

type KcLog struct {
	Id                primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	WID               uint               `bson:"wid" json:"wid"`
	UID               uint               `bson:"uid" json:"uid"`
	TypeID            uint               `bson:"typeID" json:"typeID"`     //开采舰类型
	TypeName          string             `bson:"typeName" json:"typeName"` //开采舰名称
	TypeImg           string             `bson:"typeImg" json:"typeImg"`   //开采舰图片
	TypeModule        string             `bson:"typeModule" json:"typeModule"`
	Energy            int                `bson:"energy" json:"energy"`                   //能量
	MineWID           uint               `bson:"mineWid" json:"mineWid"`                 //开采星球id
	MineTypeID        uint               `bson:"mineTypeID" json:"mineTypeID"`           //开采星球类型
	MineTypeName      string             `bson:"mineTypeName" json:"mineTypeName"`       //开采星球名称
	MineTypeImg       string             `bson:"mineTypeImg" json:"mineTypeImg"`         //开采星球图片
	MineTypeModule    string             `bson:"mineTypeModule" json:"mineTypeModule"`   //开采星球模块
	Contribute        int64              `bson:"contribute" json:"contribute"`           //贡献数量
	Extract           int64              `bson:"extract" json:"extract"`                 //开采数量
	ExtractTypeID     uint               `bson:"extractTypeID" json:"extractTypeID"`     //产出类型
	ExtractTypeName   string             `bson:"extractTypeName" json:"extractTypeName"` //产出名称
	ExtractTypeImg    string             `bson:"extractTypeImg" json:"extractTypeImg"`   //产出图片
	ExtractTypeModule string             `bson:"extractTypeModule" json:"extractTypeModule"`
	Status            KcStatus           `bson:"status" json:"status"`
	StarTime          int64              `bson:"starTime" json:"starTime"` //开采开始时间
	EndTime           int64              `bson:"endTime" json:"endTime"`   //开采结束时间
}
type KcStatus int

const (
	MineNone     KcStatus = iota // 无
	MinEnd                       // 开采完成
	MinTransport                 // 运输
)

type YsLog struct {
	Id                primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	WID               uint               `bson:"wid" json:"wid"`
	UID               uint               `bson:"uid" json:"uid"`
	TypeID            uint               `bson:"typeID" json:"typeID"`     //运输舰类型
	TypeName          string             `bson:"typeName" json:"typeName"` //运输舰名称
	TypeImg           string             `bson:"typeImg" json:"typeImg"`   //运输舰图片
	TypeModule        string             `bson:"typeModule" json:"typeModule"`
	Energy            int                `bson:"energy" json:"energy"`                   //能量
	MineWID           uint               `bson:"mineWid" json:"mineWid"`                 //开采舰id
	MineTypeID        uint               `bson:"mineTypeID" json:"mineTypeID"`           //开采舰类型
	MineTypeName      string             `bson:"mineTypeName" json:"mineTypeName"`       //开采舰名称
	MineTypeImg       string             `bson:"mineTypeImg" json:"mineTypeImg"`         //开采舰图片
	MineTypeModule    string             `bson:"mineTypeModule" json:"mineTypeModule"`   //开采舰模块
	Extract           int64              `bson:"extract" json:"extract"`                 //运输数量
	ExtractTypeID     uint               `bson:"extractTypeID" json:"extractTypeID"`     //运输类型
	ExtractTypeName   string             `bson:"extractTypeName" json:"extractTypeName"` //运输名称
	ExtractTypeImg    string             `bson:"extractTypeImg" json:"extractTypeImg"`   //运输图片
	ExtractTypeModule string             `bson:"extractTypeModule" json:"extractTypeModule"`
	Status            YsStatus           `bson:"status" json:"status"`
	StarTime          int64              `bson:"starTime" json:"starTime"` //运输开始时间
	EndTime           int64              `bson:"endTime" json:"endTime"`   //运输结束时间
}
type YsStatus int

const (
	TransportNone     YsStatus = iota // 无
	TransportEnd                      // 运输完成
	TransportFail                     // 运输失败
	TransportReceive                  // 运输领取
	TransportRecovery                 // 运输回收
)
